package com.mall.service.impl;

import java.io.File;
import java.util.UUID;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile;

import com.google.common.collect.Lists;
import com.mall.service.IFileService;
import com.mall.util.FTPUtil;

@Service
public class FileServiceImpl implements IFileService {
	
	Logger logger = LoggerFactory.getLogger(FileServiceImpl.class);
	
	@Override			//上传文件
	public String upload(MultipartFile file, String path) {
		//原始文件名字
		String fileName = file.getOriginalFilename();
		
		//文件扩展名  如abc.def.jpg的扩展名为jpg
		String fileExtensionName = fileName.substring(fileName.lastIndexOf(".")+1);
		
		
		//上传时生成一个新文件名,防止不同的人上传文件名相同时导致覆盖.
		String uploadFileName = UUID.randomUUID().toString()+"."+fileExtensionName;
		
		//做日志
		logger.info("开始上传文件..");
		
		//判断是否有要上传的目录,若没有就创建
		File fileDir = new File(path);
		if(!fileDir.exists()){
			fileDir.mkdirs();
		}
		
		 
		File targetFile = new File(path,uploadFileName);
		try{
			//到下面这一步已经上传到webapps目录下
			file.transferTo(targetFile);
			
			//接下来上传到ftp服务器上
			FTPUtil.uploadFile(Lists.newArrayList(targetFile));
			
			//接下来删除webapps目录下的图片
//			targetFile.delete();
			
		}catch(Exception e){
			e.printStackTrace();
		}
		
		return targetFile.getName();
		
	}
	
/*	public static void main(String[] args) {
		String fileName = "abc.jpg"; 
		String fileExtensionName = fileName.substring(fileName.lastIndexOf(".")+1);
		System.out.println(fileExtensionName);
	}*/
}
